package com.kzw.web;

import com.kzw.entity.Clazz;

import my.json.Jackson;
import my.mvc.Annotation.JSONOutput;
import my.mvc.RequestContext;
import my.util.ResponseUtils;

public class HelloAction {

	/**
	 * url: /action/hello/test1?name=abc&age=20
	 */
	// @PostMethod   必须是POST请求
	public void test1(RequestContext rc) throws Exception {
		// 1. 获得请求参数
		String name = rc.param("name");
		int age = rc.param("age", 0);
		
		// 2. 根据请求参数调用业务方法
		
		
		// 3. 页面跳转前携带数据
		rc.reqAttr("name", name);
		rc.reqAttr("age", age);

		// 4. 页面跳转
		rc.forward("/hello.jsp");
		
		// rc.redirect(rc.contextPath() + "/hello.jsp");
	}
	
	
	/**
	 * ajax请求：返回JSON字符串
	 * url: /action/hello/test2?name=软件181&note=aaa
	 * */
	public void test2(RequestContext rc) throws Exception {
		// 将请求参数自动包装成Clazz对象（属性名和参数名相同）
		Clazz clazz = rc.form(Clazz.class);		
		System.out.println(clazz);
		
		
		String json = Jackson.me().toJson(clazz);
		ResponseUtils.renderJson(rc.response(), json);		
	}
	
	/**
	 * 返回的对象，会输出JSON字符串
	 * url: /action/hello/test3?id=100&name=软件181&note=aaa
	 * */
	@JSONOutput
	public Clazz test3(RequestContext rc) throws Exception {
		// 将请求参数自动包装成Clazz对象（属性名和参数名相同）
		Clazz clazz = rc.form(Clazz.class);		
		System.out.println(clazz);
				
		return clazz;		
	}
	
}
